<?php
if (basename($_SERVER['PHP_SELF']) != "c.php") {
    header("Location: " . BASE_URL . "c.php?c=compra&act=cesta");
    exit;
}

require_once(SAS_PATH . "_includes/func_frete.php");

$cd_produto = intval(post("cd_produto"));
$cd_produto_variacao = intval(post("cd_produto_variacao"));

/////////////////////////////////
// REMOVER PRODUTO DA CESTA
function cesta_prod_remover($cd_produto, $cd_produto_variacao = false) {
    global $db, $msg_cesta;
    $where_variacao;

    $db->StartTrans();

    // Busca os brindes dos produtos
    $sql = "SELECT cd_produto_brinde, (c.qtd_produto-b.qtd_produto)
            FROM " . SQL_BRINDE . " a
            INNER JOIN cesta_item b ON a.cd_produto = b.cd_produto
            LEFT JOIN cesta_item c ON c.cd_produto = a.cd_produto_brinde
            WHERE b.cd_produto = '" . $cd_produto . "'";
    $result = $db->Execute($sql);

    // Varre todos os brindes
    while ($result && list($cd_produto_brinde, $qtd_produto) = $result->FetchRow()) {
        if ($qtd_produto <= 0) {
            // Se não for mais necessário o brinde, exclui
            $sql = "DELETE FROM cesta_item WHERE cd_produto = '" . $cd_produto_brinde . "' AND id_sessao = '" . session_id() . "'";
            $db->Execute($sql);
        } else {
            // Caso contrário, altera a quantidade
            $sql = "UPDATE cesta_item SET qtd_produto = '" . $qtd_produto . "' WHERE cd_produto = '" . $cd_produto_brinde . "' AND id_sessao = '" . session_id() . "'";
            $db->Execute($sql);
        }
    }

    if (!empty($cd_produto_variacao)) {
        $where_variacao = " AND cd_produto_variacao = " . $cd_produto_variacao;
    }

    // Remove o produto
    $sql = "DELETE FROM cesta_item WHERE cd_produto = '" . $cd_produto . "' AND id_sessao = '" . session_id() . "'" . $where_variacao . "";
    $db->Execute($sql);

    if ($db->HasFailedTrans()) {
        $msg_cesta = "Ocorreu um erro ao retirar o produto na cesta. Por favor tente novamente. Caso o problema persista, entre em contato conosco.";
    }

    $db->CompleteTrans();
}

if ($_POST['remover_produto']) {
    if (!prod_confere_brinde($_POST['remover_produto'])) {
        cesta_prod_remover($_POST['remover_produto'], $_POST['remover_produto_variacao']);
    } else {
        $msg_cesta = "Não é possível excluir brinde da cesta";
    }
}

//////////////////////////////
// LIMPAR A CESTA
if ($_GET['limpar_cesta']) {
    $sql = "DELETE FROM cesta_item WHERE id_sessao = '" . session_id() . "'";
    db_query($sql);
    sessao_del("vl_cesta");
    sessao_del("cesta_qtd_produtos");
}

//////////////////////////////////
// ALTERAR A QUANTIDADE DE UM PRODUTO
if ($_POST['form_alterar']) {
    // Verifica a quantidade em estoque e a quantidade atual do produto na cesta
    $sql = "SELECT c.cd_item_cesta,
				   c.cd_produto,
				   c.cd_produto_variacao,
				   p.ic_variacao,
				   c.qtd_produto AS qtd_cesta,
				   p.vl_qtd_produto AS qtd_estq_produto,
				   v.vl_qtd_produto AS qtd_estq_variacao,
				   p.nm_produto,
				   p.ic_brinde
			FROM cesta_item c
				 INNER JOIN produto p ON c.cd_produto = p.cd_produto
				 LEFT JOIN produto_variacao v ON c.cd_produto_variacao = v.cd_produto_variacao
			WHERE p.ic_brinde <> 1 AND id_sessao = '" . session_id() . "'";
    $rs_cesta = $db->Execute($sql);

    if ($rs_cesta && $rs_cesta->RecordCount() > 0) {
        while (!$rs_cesta->EOF) {
            $lst_cesta = $rs_cesta->GetRowAssoc(0);

            $cd_item_cesta = $lst_cesta["cd_item_cesta"];
            $quantidade = $_POST['quantidade'][$cd_item_cesta];
            $cd_produto = $lst_cesta["cd_produto"];
            $estoque = ($lst_cesta["ic_variacao"] ? $lst_cesta["qtd_estq_variacao"] : $lst_cesta["qtd_estq_produto"]);

            // Verifica se a quantidade foi alterada
            if ($lst_cesta["qtd_cesta"] != $quantidade) {
                if (func_verifica_inteiro($quantidade) && $quantidade > 0 && !prod_confere_brinde($cd_produto)) {
                    // Verifica se existe estoque disponível				
                    if ($estoque < $quantidade) {
                        $msg_cesta = "A quantidade desejada do produto <strong>" . $lst_cesta["nm_produto"] . "</strong> n&atilde;o est&aacute; dispon&iacute;vel em nosso estoque.";
                    } else {
                        // Busca a quantidade de brindes para o produto alterado
                        $sql = "SELECT a.cd_produto_brinde, b.qtd_produto
								FROM " . SQL_BRINDE . " a
									INNER JOIN cesta_item b ON a.cd_produto_brinde = b.cd_produto
								WHERE a.cd_produto = '" . $cd_produto . "'";
                        $result_brindes = db_query($sql);

                        $db->StartTrans();
                        $erro = false;

                        while (!$erro && $lst_brindes = mysql_fetch_array($result_brindes)) {
                            // Atualiza a quantidade de brindes na cesta
                            $sql = "UPDATE cesta_item SET qtd_produto = " . ( $lst_brindes['qtd_produto'] + ($quantidade - $lst_cesta["qtd_cesta"])) . " 
									WHERE cd_produto = '" . $lst_brindes['cd_produto_brinde'] . "' AND id_sessao = '" . session_id() . "'";
                            if (!db_query($sql)) {
                                $erro = true;
                            }
                        }

                        if (!$erro) {
                            // Altera a quantidade do produto na cesta
                            $sql = "UPDATE cesta_item SET qtd_produto = " . $quantidade . " WHERE cd_item_cesta = " . $cd_item_cesta . " AND id_sessao = '" . session_id() . "'";
                            $db->Execute($sql);
                        }

                        if ($db->HasFailedTrans()) {
                            $msg_cesta = "Ocorreu um erro ao tentar alterar a quantidade de produtos na cesta. Por favor tente novamente. Caso o problema persista, entre em contato conosco.";
                        }

                        $db->CompleteTrans();
                    }
                } elseif (func_verifica_inteiro($quantidade) && $quantidade == "0" && !prod_confere_brinde($cd_produto)) {
                    // Foi informada a quantidade zero: remover o produto da cesta
                    cesta_prod_remover($cd_produto);
                } elseif (!func_verifica_inteiro($quantidade)) {
                    // Não foi informado um número corretamente
                    $msg_cesta = "A quantidade escolhida não é válida.";
                }
            }

            $rs_cesta->MoveNext();
        }
    } else {
        $msg_cesta = "A sua cesta de compras está vazia.";
    }

    // Limpa a variável criada para alteração
    unset($cd_produto);
}

///////////////////////////////////
// ADICIONA PRODUTO NA CESTA
if (!empty($cd_produto)) {
    if (prod_insereCesta($cd_produto, $cd_produto_variacao)) {
        $sql_variacao = array();

        if (!empty($cd_produto_variacao)) {
            $sql_variacao["verifica_cesta"] = "AND cd_produto_variacao = " . $cd_produto_variacao . " ";
            $sql_variacao["insert"] = ", cd_produto_variacao";
            $sql_variacao["insert_value"] = ", " . $cd_produto_variacao . " ";
        }

        $sql = "SELECT COUNT(*) as total from cesta_item 
				WHERE cd_produto = '" . $cd_produto . "' AND id_sessao = '" . session_id() . "' " . $sql_variacao["verifica_cesta"] . " ";

        // Verifica se o produto ainda não está na cesta
        if (mysql_result(db_query($sql), 0) == 0) {
            $db->StartTrans();

            $sql = "INSERT INTO cesta_item (cd_produto, id_sessao, qtd_produto " . $sql_variacao["insert"] . ") 
					VALUES ('" . $cd_produto . "', '" . session_id() . "', '1' " . $sql_variacao["insert_value"] . ")";
            $rs_insert = $db->Execute($sql);

            if ($rs_insert) {
                // Busca os brindes do produto adicionado na cesta	
                $sql = "SELECT cd_produto_brinde FROM " . SQL_BRINDE . " a WHERE cd_produto = '" . $cd_produto . "'";
                $result = db_query($sql);

                while (list($cd_produto_brinde) = mysql_fetch_array($result)) {
                    // Adiciona 1 na quantidade do brinde na cesta, caso ele exista
                    $sql = "UPDATE cesta_item SET qtd_produto = qtd_produto + 1 WHERE cd_produto = '" . $cd_produto_brinde . "' AND id_sessao = '" . session_id() . "'";
                    $rs_brinde = $db->Execute($sql);

                    // Caso o brinde ainda não exista na cesta, o adiciona
                    if ($rs_brinde && $db->Affected_Rows() == 0) {
                        $sql = "INSERT INTO cesta_item (cd_produto, id_sessao, qtd_produto) 
								VALUES ('" . $cd_produto_brinde . "', '" . session_id() . "', '1')";
                        $rs_brinde = $db->Execute($sql);
                    }
                }
            }

            if ($db->HasFailedTrans()) {
                $msg_cesta = "Ocorreu um erro ao adicionar o produto na cesta. Por favor tente novamente. Caso o problema persista, entre em contato conosco.";
            }

            $db->CompleteTrans();
        }
    } else {
        $msg_cesta = "O produto informado não pode ser adicionado à cesta.";
    }
}

/////////////////////////////////////////
// LISTAGEM DOS PRODUTOS
$sql = "
	SELECT
		b.cd_item_cesta,
		a.cd_produto,
		b.cd_produto_variacao,
		nm_produto,
		vl_preco_produto,
		vl_preco_promocional,
		a.vl_qtd_produto,
		ic_brinde,
		ic_preco_promocional,
		ic_promocao_sem_juros,
		ic_promocao_frete_gratuito,
		nu_parcelas_sem_juros,
		ic_promocao_brinde,
		cd_imagem,
		b.qtd_produto,
		(b.qtd_produto*vl_preco_promocional) as vl_preco_total,
		c.nm_fabricante,
		op1.dc_opcao as dc_opcao1,
		op2.dc_opcao as dc_opcao2
	FROM " . SQL_PRODUTOS . " a
	INNER JOIN cesta_item b 
		ON a.cd_produto = b.cd_produto and b.id_sessao = '" . session_id() . "'
	LEFT JOIN produto_fabricante c
		ON a.cd_fabricante = c.cd_fabricante
	LEFT JOIN produto_variacao var ON b.cd_produto_variacao = var.cd_produto_variacao
	LEFT JOIN variacao_opcao_produto op1 ON var.cd_opcao1 = op1.cd_opcao
	LEFT JOIN variacao_opcao_produto op2 ON var.cd_opcao2 = op2.cd_opcao
	WHERE a.cd_produto IN 
		(SELECT cd_produto from cesta_item WHERE id_sessao = '" . session_id() . "')
	ORDER BY nm_produto";
$lst_produto = db_query($sql);

if (mysql_num_rows($lst_produto) == 0) {
    $cesta_vazia = 1;
    $msg_cesta_vazia = "<p class='mensagem'>Sua cesta est&aacute; vazia.</p>";
}
?>

<script language="JavaScript" type="text/javascript">
    function remover(cd_produto, cd_produto_variacao){
        if (confirm("Confirma a retirada do produto da sua cesta de compras?")){
            document.formRemover.remover_produto.value = cd_produto;
            document.formRemover.remover_produto_variacao.value = cd_produto_variacao;
            document.formRemover.submit();
        }	
    }
</script>


<?php
if ($msg_cesta) {
    $form_erro[] = $msg_cesta;
    print_form_result("erro", $form_erro, "Sua cesta n&atilde;o p&ocirc;de ser alterada. Confira os motivos abaixo:");
} elseif ($msg_cesta_vazia) {
    echo "<p align='center'><strong>" . $msg_cesta_vazia . "</strong></p>";
}

$cesta_qtd_produtos = 0;
$nu_min_parcelas_sem_juros = 99999;

$cesta_qtd_semjuros = 0;
$cesta_qtd_brinde = 0;
?>

<?php if (mysql_num_rows($lst_produto) > 0): ?>
<form action="c.php?c=compra&act=cesta" method="post" name="formRemover" id="formRemover">
    <input name="remover_produto" type="hidden" id="remover_produto" value="">
    <input name="remover_produto_variacao" type="hidden" id="remover_produto_variacao" value="">
</form>
<form action="c.php?c=compra&act=cesta" method="post" name="formAlterar">
    <div class="produtosSelecionados">
        <div class="coluna1">
            <p class="font2">PRODUTO</p>
        </div>
        <div class="coluna2">
            <p class="font2">DESCRIÇÃO</p>
        </div>
        <div class="coluna3">
            <p class="font2">QUANTIDADE</p>
        </div>
        <div class="coluna3">
            <p class="font2">PREÇO UNID.</p>
        </div>                    
        <div class="coluna3">
            <p class="font2">TOTAL</p>
        </div>

        <div class="clear"></div>


        <?php while ($lst = @mysql_fetch_array($lst_produto)): ?>  
            <div class="contentProduto">
                <div class="coluna1">
                    <?php echo prod_miniatura($lst['cd_produto'], $lst['cd_imagem'], $lst['nm_produto'], 100); ?>
                </div>

                <div class="coluna2">
                    <div class="width145 vertical"><span><?= substr($lst['nm_produto'], 0, 30); ?></span></div>
                </div>

                <div class="coluna3">
                    <div class="vertical">
                        <input class="campoQuantidade" type="text" name="quantidade[<?= $lst['cd_item_cesta'] ?>]" id="quantidadeProduto" type="text" value="<?= $lst['qtd_produto'] ?>" size="2" maxlength="3" />                
                        <input class="btLixo" type="button" onclick="remover('<?=$lst['cd_produto']?>', '<?=$lst['cd_produto_variacao']?>')" />
                    </div>
                </div>

                <?php //$vCupomItem = verificarItemCupom($_SESSION['cupom'], $lst['cd_produto'], $lst['cd_produto_variacao']); ?>

                <!--verificar problema no cupom-->
                <?php $vCupomItem = array(); ?>

                <div class="coluna3">
                    <p class="font3 vertical">

                        <?php if (count($vCupomItem) > 0): ?>
                            <?php
                            if ((int) $vCupomItem[0]['ic_tipo_promocao'] === 2 || (int) $vCupomItem[0]['ic_tipo_promocao'] === 6) {
                                $_SESSION['cupomFreteGratis'] = true;
                            }
                            $vPrecoCupom = calcularPrecoProdutoCupom($lst['vl_preco_produto'], $vCupomItem[0]['vl_preco'], $vCupomItem[0]['vl_percentual']);
                            ?>

                            R$ <?= func_num_bd2br($vPrecoCupom); ?>

                            <?php
                            $vl_cesta += ($vPrecoCupom * $lst['qtd_produto']);
                            $lst['vl_preco_total'] = ($vPrecoCupom * $lst['qtd_produto']);
                            ?>                        
                        <?php else: ?>
                            <?php if ($lst['ic_preco_promocional'] == "1"): ?>                    
                                R$ <?php echo func_num_bd2br($lst['vl_preco_promocional']) ?>

                                <?php $vl_cesta += ($lst['vl_preco_promocional'] * $lst['qtd_produto']); ?>

                            <?php else: ?>
                                R$ <?= func_num_bd2br($lst['vl_preco_produto']) ?>

                                <?php $vl_cesta += ($lst['vl_preco_produto'] * $lst['qtd_produto']); ?>

                            <?php endif; ?>                    
                        <?php endif; ?>
                        <?php
                        $cesta_qtd_produtos++;
                        $nu_min_parcelas_sem_juros = ($lst['nu_parcelas_sem_juros'] < $nu_min_parcelas_sem_juros ? $lst['nu_parcelas_sem_juros'] : $nu_min_parcelas_sem_juros);
                        ?>

                    </p>
                </div>

                <div class="coluna3">
                    <p class="font4 vertical">R$<?= func_num_bd2br($lst['vl_preco_total']) ?></p>
                </div>

                <div class="clear"></div>
            </div>
        <?php endwhile; ?>

        <div class="boxTotal">
            <p class="font2">TOTAL<span class="font4 marginLeft">
                <?php
                if(isset($_SESSION['cupom']) && !empty($_SESSION['cupom'])) {
                    $_SESSION['cupomValorCesta'] = str_replace(',', '.', $vl_cesta);
                    echo 'R$'.func_num_bd2br($vl_cesta);
                } else {
                    echo 'R$'.func_num_bd2br($vl_cesta);
                }
                ?>
                </span></p>
        </div>    

        <input class="atualizarQnte" type="submit" value="" />
        <p class="font5 floatRight">As formas de pagamento serão oferecidas na etapa "Pagamento".</p>

        <div class="linhaBotoes">
            <input class="limparCarrinho" type="button" onclick="javascript:if(confirm('Confirma a retirada de TODOS os produtos da sua cesta de compras?')) window.location.href='c.php?c=compra&act=cesta&limpar_cesta=1'" />
            <input class="continuarComprando" type="button" onclick="history.back();" />
            <input class="continuar" type="button" value="" onclick="window.location='<?php echo BASE_URL; ?>c.php?c=compra&act=entrega&id=<?=session_id()?>'" />
            <input name="form_alterar" type="hidden" value="1" />
        </div>
        
        <?php require_once('layout/compra/frete.php'); ?>

        <div class="clear"></div>                        
    </div>
</form>
<?php endif; ?>

